package com.Test;

import java.text.SimpleDateFormat;
import java.util.*;

public class Test27 {
    public static void main(String[] args) throws Exception {

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        // 假设这是你的日期时间数据列表
        List<Date> dateTimeList = Arrays.asList(
                dateFormat.parse("2024-07-19 19:10:47"),
                dateFormat.parse("2024-07-19 19:10:47"),
                dateFormat.parse("2024-07-19 19:10:47"),
                dateFormat.parse("2024-07-19 19:10:47"),
                dateFormat.parse("2024-07-24 19:24:18"),
                dateFormat.parse("2024-07-24 19:24:18"),
                dateFormat.parse("2024-07-24 19:24:18"),
                dateFormat.parse("2024-07-24 19:24:18"),
                dateFormat.parse("2024-07-27 19:07:42"),
                dateFormat.parse("2024-07-27 19:07:42"),
                dateFormat.parse("2024-07-27 19:07:42"),
                dateFormat.parse("2024-07-27 19:07:42"),
                dateFormat.parse("2024-07-19 19:10:47"),
                dateFormat.parse("2024-07-19 19:10:47"),
                dateFormat.parse("2024-07-24 19:24:18"),
                dateFormat.parse("2024-07-24 19:24:18"),
                dateFormat.parse("2024-07-27 19:07:42"),
                dateFormat.parse("2024-07-27 19:07:42")
        );

        // 使用 HashSet 记录已经出现过的日期
        Set<String> seenDates = new HashSet<>();

        // 遍历列表并处理
        for (int i = 0; i < dateTimeList.size(); i++) {
            Date dateTime = dateTimeList.get(i);
            // 将 Date 转换为字符串格式以进行比较
            String dateStr = dateFormat.format(dateTime);
            // 提取日期部分
            String date = dateStr.substring(0, 10);

            if (!seenDates.contains(date)) {
                seenDates.clear();
                // 将日期添加到已经出现过的集合
                seenDates.add(date);
            } else {
                // 如果日期已经出现过，将该位置的日期设置为 null
                dateTimeList.set(i, null);
            }
        }

        // 输出结果验证
        for (Date dateTime : dateTimeList) {
            System.out.println(dateTime == null ? null : dateFormat.format(dateTime));
        }
    }
}
